The present disclosure is directed to technology for monitoring software in a computing environment. The present disclosure is directed to technology for performance monitoring software in a computing environment.
The growing presence of the Internet as well as other computer networks such as intranets and extranets has brought many new applications in e-commerce, education and other areas. Organizations increasingly rely on such applications to carry out their business or other objectives, and devote considerable resources to ensuring that they perform as expected. To this end, various application management techniques have been developed.
One approach involves monitoring the health of the application by collecting application runtime data regarding the individual software components that are invoked in the application. This approach can use agents that essentially live in the system being monitored. For example, using instrumentation of the software, a thread or process can be traced to identify each software component that is invoked, as well as to obtain runtime data such as the execution time of each software component and the dependencies between the said components. Tracing refers to obtaining a detailed record, or trace, of the steps a computer program executes. One type of trace is a stack trace. Traces can be used as an aid in debugging.
However, diagnosis of problems continues to be difficult and time-consuming. For example, when a transaction or application is failing, the provider wants to know what exactly is going wrong, and why. Improved diagnostic techniques are needed.